Çalışma Soruları

1) Bağlantılı listenin en uygun çözüm olduğu uygulama alanları neler olabilir? Özelliklerini de vererek açıklayınız.

2) Bir kelime işlemci bağlantılı liste veri modeline dayandırılarak nasıl tasarlanabilir? Böylesi bir çözümde düğümlerde neler tutulur. Çizerek gösteriniz.

3) Elemanları büyükten küçüğe doğru sıralı olan bağlantılı liste kurulmak istenmektedir. Yani listenin ilk elemanı en büyük, son elemanı da en küçük değerlere sahip olacaktır.

       a) Böyle bir bağlantılı listeyi tek-yönlü bağlantı liste olarak oluşturan ekleme fonksiyonunu tasarlayınız ve C diliyle kodlayınız; fonksiyon ekleme işlemini listenin sıralı olma özelliğini bozmadan yapacaktır.
       b) Tasarladığınız fonksiyonun yürütme zamanı maliyet bağıntısı ve zaman karmaşıklığını büyük O notasyonuna hesaplayınız.
       c) Zaman karmaşıklığı mi çıktı? Bunu yapacak bir yöntem öngörebiliyor musunuz? Açıklayınız.

4) Elemanları sıralı olan iki bağlantılı listeyi elemanların sıralı özelliğini bozmadan birincisi üzerinde birleştiren (merging) birlestir(liste1, liste2) adlı bir C fonksiyonu tasarlayınız. Bağlantılı listeler tek-yönlüdür; birleştirme sonrası tüm düğümler liste1'de olup liste2 boş kalacaktır.

5) Bağlantılı liste üzerinde tutulan verilerin, liste üzerinde sıralı dahi olsa, ikili arama (binary search) yapılması oldukça maliyetli olur. Nedenini açıklayınız. Arama zaman maliyetini azaltmak için liste üzerinde ne gibi değişiklik yapılmalıdır?

6) Bir polinomun çarpanlarını ve üs değerlerini klavyeden okuyarak polinomu bağlantılı liste şeklinde bellekte tutan bir C fonksiyonu tasarlayınız. Fonksiyonda önce derece bilgisi sorulacak ve daha sonra tane sayı çifti okunacaktır.